home *** CD-ROM | disk | FTP | other *** search
/ Die Speccy' 97 / Die Speccy' 97.iso / amiga_system / the_aminet / dev / misc / mkdepend_1_1.lha / MkDepend-1.1 / nodes.h < prev    next >
C/C++ Source or Header  |  1995-10-13  |  2KB  |  57 lines

  1. /*
  2. $VER: nodes:h 1.0 (10-Sep-95) Copyright ⌐ by Lars Dⁿning
  3. */
  4.  
  5. #ifndef __NODES_H__
  6. #define __NODES_H__ 1
  7.  
  8. struct noderef;  /* forward */
  9.  
  10. /* Node structure to build the dependency tree
  11.  */
  12. typedef struct node
  13.  {
  14.    struct node    * pLeft, * pRight;  /* Tree pointers */
  15.    struct node    * pNext;    /* List of Files to do; stack for traversals */
  16.    char           * pName;    /* Name associated with the node */
  17.    int              iInclude; /* Index of the include path the file is in */
  18.    short            flags;    /* misc flags */
  19.    struct noderef * pDeps;    /* Dependencees of this file */
  20.    short            iStage;   /* Stage counter for tree traversals */
  21.  }
  22. Node;
  23.  
  24. /* Node.flags
  25.  */
  26. #define NODE_MARK   (1<<0)  /* Generic Node marker */
  27. #define NODE_NEW    (1<<1)  /* Node is unused */
  28. #define NODE_SOURCE (1<<2)  /* Node is a skeleton source */
  29. #define NODE_AVOID  (1<<3)  /* Node is not part of the skeleton sources */
  30. #define NODE_DONE   (1<<4)  /* Node has been evaluated */
  31.  
  32. /* Node marking
  33.  */
  34. #define NODES_MARK(node)   (node->flags |= NODE_MARK)
  35. #define NODES_UNMARK(node) (node->flags &= (short)(~NODE_MARK))
  36. #define NODES_MARKED(node) (node->flags & NODE_MARK)
  37.  
  38. /* Reference structure to treenodes
  39.  */
  40. typedef struct noderef
  41.  {
  42.    struct noderef * pNext;  /* next NodeRef */
  43.    Node           * pNode;  /* referenced Node */
  44.  }
  45. NodeRef;
  46.  
  47. /* Prototypes */
  48. extern int       nodes_addsource (const char *, int);
  49. extern int       nodes_depend (Node *, const char *);
  50. extern Node    * nodes_todo (void);
  51. extern void      nodes_initwalk (void);
  52. extern Node    * nodes_inorder (void);
  53. extern NodeRef * nodes_deplist (Node *);
  54. extern void      nodes_freelist (NodeRef *);
  55.  
  56. #endif
  57.